本文將會介紹打磚塊 Machine-Learning 上會運用到的相關功能。
Frame = []
Status = []
Ballposition = []
PlatformPosition = []
Bricks = []
for i in range(0,len(data_list1)):
Frame.append(data_list1[i].frame)
Status.append(data_list1[i].status)
Ballposition.append(data_list1[i].ball)
PlatformPosition.append(data_list1[i].platform)
Bricks.append(data_list1[i].bricks)
for i in range(0,len(data_list2)):
Frame.append(data_list2[i].frame)
Status.append(data_list2[i].status)
Ballposition.append(data_list2[i].ball)
PlatformPosition.append(data_list2[i].platform)
Bricks.append(data_list2[i].bricks)
for i in range(0,len(data_list3)):
Frame.append(data_list3[i].frame)
Status.append(data_list3[i].status)
Ballposition.append(data_list3[i].ball)
PlatformPosition.append(data_list3[i].platform)
Bricks.append(data_list3[i].bricks)
上面程式碼是將,我們抓下來的資料將存入訓練的Data中,再將這個Data放入 Sklearn 來分類做訓練,但是這個部分就要非常注意,因為你抓下來的資料可能是失敗的,所以必須要在資料中做個分析,但是現在本人的資料分析有點狀況,有點不方便貼上,我這邊會再度做一次修改,會再進行跟各位介紹。
當分析完畢以及放入的資料如果是正確的,那就可以將資料利用 Sklearn 來做分類及訓練。
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x, y, test_size = 0.2, random_state = 41)
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
knn = KNeighborsClassifier(n_neighbors= 3)
knn.fit(x_train,y_train)
yknn_bef_scaler = knn.predict(x_test)
acc_knn_bef_scaler = accuracy_score(yknn_bef_scaler,y_test)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(x_train)
x_train_stdnorm = scaler.transform(x_train)
knn.fit(x_train_stdnorm,y_train)
x_test_stdnorm = scaler.transform(x_test)
yknn_aft_scaler = knn.predict(x_test_stdnorm)
acc_knn_aft_scaler = accuracy_score(yknn_aft_scaler,y_test)
以上程式碼就是利用 sklearn 方式進行分類動作,利用KNN形式來做分類,並且利用 Accuracy_score 精確度處理,再將資料分成訓練以及測試資料,這個比例的分配也要看自己的資料狀況,有些可以訓練多,有些可以訓練少,這個要依照每個人資料狀況而定。
那麼以上為不專業的AI介紹,謝謝各位觀看,那我們下篇見~~~